package br.gov.sjc.dao;
import java.util.ArrayList;
import java.util.List;

import br.gov.sjc.classes.Trabalho;
import android.content.ContentValues;
import android.content.Context;
import android.database.Cursor;
import android.database.SQLException;
import android.database.sqlite.SQLiteDatabase;


public class TrabalhoDAO  {
	private SQLiteDatabase database;
    private BaseDAO dbHelper;
    
  //Campos da tabela
	private static final String[] COLS = {"_id", "SiasN", "idMembro", 
		"Tipo","Rendimento","HorasporMes","Ocupacao","INSS"};
	
	/**
	 * Constructor
	 */
	public TrabalhoDAO(Context context) {
		dbHelper = new BaseDAO(context);
	}
    public void open() throws SQLException {
        database = dbHelper.getWritableDatabase();
    }
    public void close() {
        dbHelper.close();
    }
	public long inserir(Trabalho trabalho){
		ContentValues valores = new ContentValues();
		valores.put(BaseDAO.TRABALHO_SIASN, String.valueOf(trabalho.gettSiasN()));
		valores.put(BaseDAO.TRABALHO_IDMEMBRO, String.valueOf(trabalho.getTidMembro()));
		valores.put(BaseDAO.TRABALHO_TIPO, trabalho.getTipo());
		valores.put(BaseDAO.TRABALHO_RENDIMENTO, trabalho.getRendimento());
		valores.put(BaseDAO.TRABALHO_HORASPORMES, trabalho.getHorasMes());
		valores.put(BaseDAO.TRABALHO_OCUPACAO, trabalho.getOcupacao());
		valores.put(BaseDAO.TRABALHO_INSS, trabalho.getINSS());
		
		return database.insert(BaseDAO.TBL_TRABALHO, null, valores);
	}
	public int alterar(Trabalho trabalho) {
		long id = trabalho.get_id();
		ContentValues valores = new ContentValues();
		
		valores.put("SiasN", String.valueOf(trabalho.gettSiasN()));
		valores.put("idMembro", String.valueOf(trabalho.getTidMembro()));
		valores.put("Tipo", trabalho.getTipo());
		valores.put("Rendimento", trabalho.getRendimento());
		valores.put("HorasporMes", trabalho.getHorasMes());
		valores.put("Ocupacao", trabalho.getOcupacao());
		valores.put("INSS", trabalho.getINSS());
		
		return database.update(BaseDAO.TBL_TRABALHO, valores, BaseDAO.TRABALHO_ID + "="+ id, null);
		
	}
	   public void Excluir(Trabalho pValue) {
	        long id = pValue.get_id();
	         
	        //Exclui o registro com base no ID
	        database.delete(BaseDAO.TBL_TRABALHO,BaseDAO.TRABALHO_ID+" = " + id, null);
	    }
		public List<Trabalho> Consultar(int SiasN, int idMembro){
			List<Trabalho> lista = new ArrayList<Trabalho>();
			
			//Consulta para trazer todos os dados de cada membro da tabela _____ ordenados pela coluna ______ 
	        Cursor cursor = database.query(BaseDAO.TBL_TRABALHO, COLS, 
	        		"SiasN=? AND idMembro=?", new String[]{""+SiasN,""+idMembro}, null, null, BaseDAO.TRABALHO_SIASN);
	        cursor.moveToFirst();
			//Cursor c = getWritableDatabase().query(TABELA, COLS, "SiasN=? AND idMembro=?", new String[]{""+SiasN,""+idMembro}, null, null, null);
	        while (!cursor.isAfterLast()) {
	        	Trabalho lTrabalho = cursorToTrabalho(cursor);
	        	lista.add(lTrabalho);
	            cursor.moveToNext();
	        }

			cursor.close();
			return lista;
		}
		//Converter o Cursor de dados no objeto POJO ContatoVO
	    private Trabalho cursorToTrabalho(Cursor cursor) {
	    	Trabalho lTrabalho = new Trabalho();
	    	lTrabalho.set_id(cursor.getInt(0));
	    	lTrabalho.settSiasN(cursor.getString(1));
	    	lTrabalho.setTidMembro(cursor.getString(2));
	    	lTrabalho.setTipo(cursor.getString(3));
	    	lTrabalho.setRendimento(cursor.getString(4));
	    	lTrabalho.setHorasMes(cursor.getString(5));
	    	lTrabalho.setOcupacao(cursor.getString(6));
	    	lTrabalho.setINSS(cursor.getString(7));
	        return lTrabalho;
	    }



}
